package actions;

import java.sql.SQLException;
import java.util.Map;

import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.Validations;

import facedes.UsuarioFacade;

import beans.Usuario;

public class SessaoUsuarioAction extends ActionSupport{
	private Usuario usuario;
	private Map session;
	
	public String logar(){
		try{
			Usuario usuarioTmp = UsuarioFacade.getInstance().recuperarPorLogin(usuario.getLogin());
			if(isValid(usuarioTmp)){
				this.setSessionVar("usuario", usuarioTmp);
				return SUCCESS;
			}
		}
		catch(SQLException excessao){
			System.out.println(excessao.getMessage());
		}
		this.addActionError("Login ou senha incorretos.");
		return ERROR;
	}
	
	public void setSession(Map session){
		this.session = session;
	}
	
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public void setSessionVar(String chave, Object valor){
		ActionContext.getContext().getSession().put(chave, valor);
	}
	
	public Object getSessionVar(String chave){
		return 	ActionContext.getContext().getSession().get(chave);
	}
	
	public boolean isValid(Usuario usr){
		if(this.usuario.getSenha().equals(usr.getSenha()))
			return true;
		return false;
	}
}
